import java.util.Random;
import java.util.Scanner;

public class Lab_01 {
    public static void main(String[] args) {
        // 初始化工具类
        Random random = new Random();
        Scanner scanner = new Scanner(System.in);

        // 配置参数
        final int TOTAL_QUESTIONS = 50; // 题目总数
        final int MAX_NUMBER = 100;     // 最大数字（100以内）

        // 统计变量
        int correctCount = 0;    // 答对题数
        long startTime = System.currentTimeMillis(); // 开始时间

        System.out.println("===== 100以内加减法口算练习（共" + TOTAL_QUESTIONS + "题）=====");
        System.out.println("请输入每题的答案，按回车确认（输入负数可退出）\n");

        // 生成并处理50道题目
        for (int i = 1; i <= TOTAL_QUESTIONS; i++) {
            // 1. 生成两个100以内的随机数（确保减法结果非负，避免负数答案）
            int num1 = random.nextInt(MAX_NUMBER); // 0-99
            int num2 = random.nextInt(MAX_NUMBER); // 0-99
            char operator; // 运算符
            int correctAnswer; // 正确答案

            // 2. 随机选择加减法（减法时确保num1 >= num2，避免负数结果）
            if (random.nextBoolean()) {
                operator = '+';
                correctAnswer = num1 + num2;
            } else {
                operator = '-';
                // 确保减法结果非负
                if (num1 < num2) {
                    int temp = num1;
                    num1 = num2;
                    num2 = temp;
                }
                correctAnswer = num1 - num2;
            }

            // 3. 显示题目并获取用户答案
            System.out.print("第" + i + "题：" + num1 + " " + operator + " " + num2 + " = ");
            int userAnswer;

            // 处理用户输入（确保输入是整数）
            while (!scanner.hasNextInt()) {
                System.out.print("输入错误！请输入整数答案：");
                scanner.next(); // 清除非整数输入
            }
            userAnswer = scanner.nextInt();

            // 4. 退出条件（输入负数）
            if (userAnswer < 0) {
                System.out.println("\n已退出练习！");
                break;
            }

            // 5. 判分并反馈
            if (userAnswer == correctAnswer) {
                System.out.println("✅ 回答正确！");
                correctCount++;
            } else {
                System.out.println("❌ 回答错误！正确答案是：" + correctAnswer);
            }
            System.out.println("------------------------");
        }

        // 6. 计算答题时间
        long endTime = System.currentTimeMillis();
        double timeUsed = (endTime - startTime) / 1000.0; // 转换为秒

        // 7. 显示统计结果
        System.out.println("\n===== 练习结束 =====");
        System.out.println("总题数：" + TOTAL_QUESTIONS);
        System.out.println("答对题数：" + correctCount);
        System.out.println("答题正确率：" + String.format("%.1f", (correctCount * 100.0) / TOTAL_QUESTIONS) + "%");
        System.out.println("总用时：" + String.format("%.1f", timeUsed) + " 秒");

        scanner.close();
    }
}